#include <cstdio>
#include <algorithm>
#include <cstring>
#define _clr(x,a) memset(x,a,sizeof(x))
using namespace std;
const int N=11;
int n,m;
int x[N];
int a[N];
int w[N];
int main(void){
    while(~scanf("%d%d",&n,&m)){
        _clr(x,0);
        _clr(a,0);
        _clr(w,0);
        for(int i=1;i<=n;i++){
            scanf("%d%d",&a[i],&w[i]);
            x[i]=i;
        }
        sort(x,x+n);
        int ans=0x3f3f3f3f;
        do{
            int cnt=0;
            int tm=m;
            for(int i=1;i<=n;i++){
                //printf("%d ",x[i]);
                cnt++;
                if(tm<=w[x[i]]){
                    tm-=a[x[i]]*2;
                }
                else{
                    tm-=a[x[i]];
                }
                if(tm<=0){
                    ans=min(ans,cnt);
                    break;
                }
            }
            //printf("\n");
        }while(next_permutation(x+1,x+n+1));
        if(ans==0x3f3f3f3f){
            printf("-1\n");
        }
        else{
            printf("%d\n",ans);
        }
    }
    return 0;
}